﻿/**
 * @author Administrator
 * 代理模式
 * 涉及到的角色：
 * 在代理模式中的角色：
 *　●　　抽象对象角色：声明了目标对象和代理对象的共同接口，这样一来在任何可以使用目标对象的地方都可以使用代理对象
 *　●　　目标对象角色：定义了代理对象所代表的目标对象。
 *　●　　代理对象角色：代理对象内部含有目标对象的引用，从而可以在任何时候操作目标对象；代理对象提供一个与目标对象相同的接口，以便可以在任何时候替代目标对象。
 *     代理对象通常在客户端调用传递给目标对象之前或之后，执行某个操作，而不是单纯地将调用传递给目标对象。
 *     
 * 制作远程服务步骤如下：
 * 1. 制作远程接口
 *    在远程接口中定义出可以让客户调用的方法
 * 2. 制作远程的实现
 * 	      做实际的工作，就是客户要调用方法的对象
 * 3. 利用rmic产生的stub和skeleton
 *    是客户和服务的辅助类，不需要自己创建这些类，甚至连生成他们的代码都看不到，因为在运行rmic工具的时候，会自动处理，
 *    可以在jdk中找到rmic
 * 4. 启动RMI（rmiregistry）
 *	  rmiregistry就像电话簿一样，客户可以从中查到代理的位置（也就是客户的stub helper对象）
 * 5. 开始远程服务
 * 	      让服务对象开始运行，服务类会去实例化一个服务的实例，并将这个服务注册到rmiregistry，注册之后这个服务就可以供客户调用了
 */
package com.firewolf.proxy;